﻿using Autofac.Extras.DynamicProxy;
using MDT.LifeSewagePlatform.Conmmon;
using MDT.LifeSewagePlatform.Entity;
using System.Threading.Tasks;

namespace MDT.LifeSewagePlatform.InterfaceService
{
    [Intercept(typeof(CustomAutofacAop))]
    public interface IUserService
    {
        public  Task<BaseMessage> Login(LoginModel model);
        
        public  Task<BaseMessage> Add(AddUser user, int ID);
        
        public  Task<BaseMessage> Update(UpdateUser user, int ID, int UserID);
        
        public Task<BaseMessage> UpdatePassword(int UserID, UpdatePassword updatePassword);
        
        /// <summary>
        /// 获取用户
        /// </summary>
        /// <param name="Params"></param>
        /// <returns></returns>
        public  Task<BaseMessage> GetUsers(UserParameter Params);
       
        /// <summary>
        /// 通过id找用户
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public  Task<BaseMessage> FindUserById(int ID);
        
        /// <summary>
        /// 软删除
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="UserID"></param>
        /// <returns></returns>
        public  Task<BaseMessage> SoftDelete(int ID, int UserID);
    
        /// <summary>
        /// 取消软删除
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="UserID"></param>
        /// <returns></returns>
        public  Task<BaseMessage> UnSoftDelete(int ID, int UserID);

        /// <summary>
        /// 获取验证码
        /// </summary>
        /// <param name="phone"></param>
        /// <returns></returns>
        public  Task<BaseMessage> GetCode(string phone);

        /// <summary>
        /// 忘记密码
        /// </summary>
        /// <param name="Params"></param>
        /// <returns></returns>
        public  Task<BaseMessage> FrogetPassword(ForgetPassword Params);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public  Task<BaseMessage> Delete(int id);
    }
}
